from django.contrib import admin
from dbapp.models import BookInfo, HeroInfo

# Register your models here.

# 管理页标题
admin.site.site_header = '传智书城'
# 网站页面的标题
admin.site.site_title = '传智书城MIS'
# 图书英雄管理页的欢迎词
admin.site.index_title = '欢迎使用传智书城MIS'



# 需求：在书籍的详情页面，拓展添加英雄的操作页
# 1.自定义嵌入管理类 继承 admin.TabularInline  or  admin.StackedInline
class HeroInfoInline(admin.TabularInline):
    # 需要嵌入的模型类
    model = HeroInfo
    # 展示数据条数
    extra = 1

# 2.在管理类中注册到 inlines列表中


# 需求：修改英雄和图书的列表页面展示信息
# 1.自定义模型管理类，基础于：admin.ModelAdmin
class BookInfoModelAdmin(admin.ModelAdmin):

    # -----------------------操作列表页-----------------------
    # 设置每一页展示数据条数，默认是：100条
    list_per_page = 3

    # 设置删除按钮的位置
    actions_on_top = True
    actions_on_bottom = True

    # 列表页需要展示是字段
    list_display = ["btitle", "bpub_date", "bread", "bcomment", "my_date", "image"]

    # 右侧过滤器展示
    list_filter = ["bpub_date", "bread"]

    # 添加搜索功能，根据书籍名称搜索
    search_fields = ["btitle"]

    # -----------------------操作模型详情页面-----------------------

    # 详情页需要展示的字段
    # fields = ["btitle", "bpub_date", "bread"]

    # 详情页需要展示的字段 并且可以分组展示
    fieldsets = (
        ('必填', {'fields': ('btitle', 'bpub_date')}),
        ('可选', {
                # 添加图片字段
                'fields': ('bread', 'bcomment', "image"),

                'classes': ('collapse',)  # 是否折叠显示 注意：逗号别忘了
                }),
    )

    # 2.在管理类中注册到 inlines列表中
    inlines = [HeroInfoInline]


class HeroInfoModelAdmin(admin.ModelAdmin):


    # 调整英雄列表页面字段展示
    list_display = ["hname", "hbook", "book_read"]


# 2.需要将自定义的管理类注册到站点管理上
# 只有注册完模型类后，在后台管理页面才能操作该模型
admin.site.register(BookInfo, BookInfoModelAdmin)
admin.site.register(HeroInfo, HeroInfoModelAdmin)
